package com.cib.xagcjs.dal;

import com.cib.xagcjs.dto.EcnyContractPayDTO;
import com.cib.xagcjs.dto.EcnyPaymentDTO;
import com.cib.xagcjs.vo.EcnyPaymentListVO;
import com.cib.xagcjs.vo.EcnyPaymentVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Description: 数币通知mapper层
 * Author: jingcaiqi1225@gmail.com
 * Date: 2024/2/22 9:12
 */
@Mapper
public interface EcnyPaymentNotifyMapper {
    /**
     * 数币通知主表入库
     * @param data 数币信息
     * @return 执行影响的行数
     */
    int insertNotify(EcnyPaymentDTO data);

    /**
     * 添加数币支付明细表
     * @param contractPayment 数币支付详情
     * @return 执行影响的行数
     */
    int insetPaymentDto(@Param("co") EcnyContractPayDTO contractPayment, @Param("transId") String transId);

    /**
     * 查询数币通知表主表支付状态改为 2 （已支付） 的列表
     * @param status 支付状态
     * @return transId 列表
     */
    List<EcnyPaymentVO> selectByTransId(@Param("status") int status);

    /**
     * 查询数币通知表主表 这个批次的总笔数
     * @param transId 批次号
     * @return 总数
     */
    int selectTotalNum(@Param("transId") String transId);

    /**
     * 根据这个批次的transId 获取下面所有 状态 3-付款成功，收款未确认 的列表
     * @param transId 批次号
     * @return 列表
     */
    List<EcnyPaymentListVO> selectList(@Param("transId") String transId);

    /**
     * 修改通知表状态为 3 已反馈
     * @param transId 交易唯一标识
     * @param status 状态
     */
    void updateStatus(@Param("transId") String transId, @Param("status") int status);
}
